package com.zwx.tree.leetcode_3;

/**
 * 二叉树的最大深度
 * <p>
 * 给定一个二叉树，找出其最大的深度
 * <p>
 * 二叉树的深度为根节到最远叶子结点的最长路径上的节点数
 *
 * @author 文希
 * @create 2019-07-07 22:43
 */
public class MaxDepth {

    /**
     * 递归，找左子树与右子树深度的最大值
     *
     * @param root
     * @return
     */
    private static int maxDepth(TreeNode root) {
        int left = 0;
        int right = 0;
        if (root != null) {
            left = maxDepth(root.left);
            right = maxDepth(root.right);
        } else {
            return 0;
        }
        return left > right ? left + 1 : right + 1;
    }

    public static class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;

        TreeNode(int x) {
            val = x;
        }
    }
}
